#ifndef CONVERSION_HPP
#define CONVERSION_HPP

#ifdef USE_OPENMP
#include <omp.h>
#elif  USE_MPI
#include <mpi.h>
#elif  USE_SHMEM
#include "dislib.h"
#endif

#include "process.h"

#include <complex>
#include <iostream>
#include <cstdlib>

typedef std::complex<double> complexd;

using namespace std;

class Conversion : public Process {
    int length;
    complexd* vec;

    double normal_dis_gen();
public:
    Conversion(int m, complexd*);
    Conversion(const Conversion &);
    ~Conversion();

    void doNoize(double eps);

    complexd operator[](int);
    friend ostream& operator<<(ostream &, Conversion &);
};

#endif // CONVERSION_HPP
